1.0. Field of the Invention
The invention relates generally to information processing technology and, more specifically, to a system and method that generally provides for creation of a distributed graph database, creation and deployment of nodes in a distributed graph database system, and integration of nodes into a set of distributed graph databases.
2.0. Related Art
Graph database systems of today, before this disclosure, do not typically allow businesses or organizations to seamlessly move information between Cloud environments, between Cloud and non-Cloud environments, and between multiple non-Cloud environments, such as behind a firewall or on organization-maintained servers.
Todays' graph databases, before this disclosure, cannot typically be distributed in an efficiently synchronizable manner. Data in the previous graph databases may be replicated to many different systems, many different instances, and multiple server environments. However, data changes on one or more graph databases are nearly impossible to capture and push to all other nodes without other changes occurring before the updates are completed, frequently resulting in orphaned data, conflicting data, and synchronization problems. Reconciling data typically requires stoppage of the systems and/or development of additional software. Each graph database with replicated information is essentially isolated from the other graph databases. Data may be exchanged between graph databases through a tedious process of preparing mutually agreeable XML schema, converting the data to be shared to XML format, writing web services, SOAP and REST protocols to manage the exchange process, agreeing on authentication and authorization protocols, parsing the XML on the receiving database, deconflicting the transferred data and the receiving data, and inserting the data into the receiving database. Data may be synchronized for a few key data elements, but these typically must be carefully selected and explicitly designed around. Reconciling the transferred data and using the transferred data to synchronize the information available for any data element in common between the receiving database and the transferred data is virtually impossible. If the data are changed in one of the sets, it may no longer be identifiable as the same data and is not synchronizable, Today's systems do not contain information needed to synchronize the entire data set, specific data elements must be selected for synchronization and static processes requiring significant resources to define and implement must be prepared. It is virtually impossible and prohibitively expensive to synchronize entire data sets across tens, hundreds, or more graph databases with today's systems before this disclosure.
Graph database systems of today, before this disclosure, do not typically provide for the dichotomy of business: the need to share data and the need to keep data separate. Systems before the disclosure do not leverage a combination of immutability and relationships to allow information distributed across a set of graph database nodes to cooperatively converge, creating cooperative advantage, and competitively diverge, creating competitive advantage, while at the same time maintaining the immutability and convergeability of the total data set.
Today's graph databases are typically limited by one or more of the following, among other limitations:                Static and constrained information representations: each graph database may operate on a constrained set of information that is force-fit into a static representation that once defined, cannot be readily changed;        Location and format/lack of interoperability: some of the data needed to properly complete an analysis or create a report may be collected by a different graph database, may be in a different format or organized differently, or may be in a different location. Data cannot be easily shared between graph databases, a convoluted set of formatting, transfer, parsing, and reformatting procedures must be programmed to enable sharing;        Limited ability to represent and adapt to changing information structures: information representations must be fully defined prior to developing graph databases for which data exchange may be desired. If a change to a data structure or format is required, the receiving graph database cannot be easily adjusted when real-world changes to the information representation become apparent;        Lack of support for creating networks of graph databases that include multiple distributed graph database nodes that can be selectively or entirely synchronized.        Automating creation, distribution, and integration of fully functioning graph database nodes into a network of graph databases such that any of the graph database nodes in a graph database network may communicate reliably and transparently with any other graph database node in the graph database network.        Sending a subset or the full set of data from a sending graph database node to one or more receiving graph database nodes and immediately merging the data into the receiving graph database nodes though a union operation rather than writing additional software to extract, package, move, parse, and deconflict the data according to a predefined schema, for example.        Expanding and distributing a network containing a virtually unlimited set of graph database nodes;        Decomposing any graph database node into multiple child graph database nodes so that a hierarchy of graph database nodes including parent/child characteristics, streamlined sharing processes, peering, and other shared processes may be created;        Multi-parenting of child graph database nodes so that the child may be readily accessed by any of the multiple parent graph database nodes;        Changing the parent of a graph database node so that the structure and content of a graph database node may be changed, such as for a corporate merger operation, but be linked to the new parent;        Creating a multiplicity of networks of graph database nodes so that virtual private internets may be implemented;        Merging one or more networks of graph database nodes with one or more other networks of graph database nodes;        Creating a graph of networks or graph database nodes.        